<html>
<head><meta charset="utf-8"><title>Next steps for promotion and validation · t-compiler/const-eval · Zulip Chat Archive</title></head>
<h2>Stream: <a href="https://rust-lang.github.io/zulip_archive/stream/146212-t-compiler/const-eval/index.html">t-compiler/const-eval</a></h2>
<h3>Topic: <a href="https://rust-lang.github.io/zulip_archive/stream/146212-t-compiler/const-eval/topic/Next.20steps.20for.20promotion.20and.20validation.html">Next steps for promotion and validation</a></h3>

<hr>

<base href="https://rust-lang.zulipchat.com">

<head><link href="https://rust-lang.github.io/zulip_archive/style.css" rel="stylesheet"></head>

<a name="176889768"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/146212-t-compiler/const-eval/topic/Next%20steps%20for%20promotion%20and%20validation/near/176889768" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Dylan MacKenzie (ecstatic-morse) <a href="https://rust-lang.github.io/zulip_archive/stream/146212-t-compiler/const-eval/topic/Next.20steps.20for.20promotion.20and.20validation.html#176889768">(Sep 29 2019 at 22:01)</a>:</h4>
<p><a href="https://github.com/rust-lang/rust/issues/64470" target="_blank" title="https://github.com/rust-lang/rust/issues/64470">#64470</a> has been merged, which means it's time to discuss the next steps on the road to implementing <a href="https://github.com/rust-lang/rust/issues/49146" target="_blank" title="https://github.com/rust-lang/rust/issues/49146">#49146</a>.</p>



<a name="176890427"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/146212-t-compiler/const-eval/topic/Next%20steps%20for%20promotion%20and%20validation/near/176890427" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Dylan MacKenzie (ecstatic-morse) <a href="https://rust-lang.github.io/zulip_archive/stream/146212-t-compiler/const-eval/topic/Next.20steps.20for.20promotion.20and.20validation.html#176890427">(Sep 29 2019 at 22:20)</a>:</h4>
<p>In the review for that PR, <span class="user-mention" data-user-id="119009">@eddyb</span> brought up some shortcomings in the old validation logic that got ported over to the dataflow-enabled one. Namely<br>
- Some error messages are <a href="https://github.com/rust-lang/rust/pull/64470#discussion_r328195580" target="_blank" title="https://github.com/rust-lang/rust/pull/64470#discussion_r328195580">phrased unclearly</a> or <a href="https://github.com/rust-lang/rust/pull/64470#discussion_r328196299" target="_blank" title="https://github.com/rust-lang/rust/pull/64470#discussion_r328196299">flat out wrong</a>.<br>
- Accessing a <code>static</code> <a href="https://github.com/rust-lang/rust/pull/64470#discussion_r328630219" target="_blank" title="https://github.com/rust-lang/rust/pull/64470#discussion_r328630219">ignores its qualifications</a>.<br>
- <code>HasMutInterior</code> is <code>true</code> <a href="https://github.com/rust-lang/rust/pull/64470#discussion_r328239873" target="_blank" title="https://github.com/rust-lang/rust/pull/64470#discussion_r328239873">for <code>&amp;mut T</code></a> as well as <code>Cell&lt;T&gt;</code>.<br>
- Computing qualifs for borrows of <code>!Frozen</code> or <code>Drop</code> types is <a href="https://github.com/rust-lang/rust/pull/64470#discussion_r328240339" target="_blank" title="https://github.com/rust-lang/rust/pull/64470#discussion_r328240339">needlessly complicated</a></p>
<p>I plan on opening PRs for the first two in the near future, with the first PR also swapping out the ad-hoc error reporting  and instead using <a href="https://github.com/rust-lang/rust/blob/master/src/librustc_mir/transform/check_consts/ops.rs" target="_blank" title="https://github.com/rust-lang/rust/blob/master/src/librustc_mir/transform/check_consts/ops.rs"><code>NonConstOp</code> errors</a>. I believe the third should wait until we implement promotion separately (see <a href="https://github.com/rust-lang/rust/issues/63812" target="_blank" title="https://github.com/rust-lang/rust/issues/63812">#63812</a>) and remove the old pass, since any fixes <a href="https://github.com/rust-lang/rust/pull/64470#discussion_r329317568" target="_blank" title="https://github.com/rust-lang/rust/pull/64470#discussion_r329317568">can't be ported</a> to the old pass. I'm not quite sure what fixing the last concern would require, so I'll let <span class="user-mention" data-user-id="119009">@eddyb</span> explain more before working to resolve it.</p>
<p>There's some unresolved bikeshedding around the name of the context object that holds information about the <a href="https://github.com/rust-lang/rust/pull/64470#discussion_r328195101" target="_blank" title="https://github.com/rust-lang/rust/pull/64470#discussion_r328195101">thing being validated</a>. I think I will also open a PR with a name change so that discussion can continue. I was planning on using <code>ItemCtxt</code> in the initial version of this, does anyone object to this as a starting point?</p>



<a name="176890514"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/146212-t-compiler/const-eval/topic/Next%20steps%20for%20promotion%20and%20validation/near/176890514" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Dylan MacKenzie (ecstatic-morse) <a href="https://rust-lang.github.io/zulip_archive/stream/146212-t-compiler/const-eval/topic/Next.20steps.20for.20promotion.20and.20validation.html#176890514">(Sep 29 2019 at 22:22)</a>:</h4>
<p><span class="user-mention" data-user-id="126931">@centril</span>? (last paragraph) I'm not sure how questions around naming things are usually resolved.</p>



<a name="176890580"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/146212-t-compiler/const-eval/topic/Next%20steps%20for%20promotion%20and%20validation/near/176890580" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/146212-t-compiler/const-eval/topic/Next.20steps.20for.20promotion.20and.20validation.html#176890580">(Sep 29 2019 at 22:24)</a>:</h4>
<p><span class="user-mention" data-user-id="118594">@ecstatic-morse</span> I don't think it's a big deal</p>



<a name="176890583"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/146212-t-compiler/const-eval/topic/Next%20steps%20for%20promotion%20and%20validation/near/176890583" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/146212-t-compiler/const-eval/topic/Next.20steps.20for.20promotion.20and.20validation.html#176890583">(Sep 29 2019 at 22:24)</a>:</h4>
<p>we can always rename later if need be</p>



<a name="176890593"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/146212-t-compiler/const-eval/topic/Next%20steps%20for%20promotion%20and%20validation/near/176890593" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/146212-t-compiler/const-eval/topic/Next.20steps.20for.20promotion.20and.20validation.html#176890593">(Sep 29 2019 at 22:25)</a>:</h4>
<p>The one thing that would be nice is to always cc the tracking issue in the PRs</p>



<a name="176890594"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/146212-t-compiler/const-eval/topic/Next%20steps%20for%20promotion%20and%20validation/near/176890594" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/146212-t-compiler/const-eval/topic/Next.20steps.20for.20promotion.20and.20validation.html#176890594">(Sep 29 2019 at 22:25)</a>:</h4>
<p>(which you are doing, so keep doing it... ^^)</p>



<a name="176890602"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/146212-t-compiler/const-eval/topic/Next%20steps%20for%20promotion%20and%20validation/near/176890602" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Dylan MacKenzie (ecstatic-morse) <a href="https://rust-lang.github.io/zulip_archive/stream/146212-t-compiler/const-eval/topic/Next.20steps.20for.20promotion.20and.20validation.html#176890602">(Sep 29 2019 at 22:25)</a>:</h4>
<p>By tracking issue you mean <a href="https://github.com/rust-lang/rust/issues/49146" target="_blank" title="https://github.com/rust-lang/rust/issues/49146">#49146</a>?</p>



<a name="176890645"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/146212-t-compiler/const-eval/topic/Next%20steps%20for%20promotion%20and%20validation/near/176890645" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Dylan MacKenzie (ecstatic-morse) <a href="https://rust-lang.github.io/zulip_archive/stream/146212-t-compiler/const-eval/topic/Next.20steps.20for.20promotion.20and.20validation.html#176890645">(Sep 29 2019 at 22:26)</a>:</h4>
<p>(and whatever the one for <code>loop</code> is)</p>



<a name="176890665"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/146212-t-compiler/const-eval/topic/Next%20steps%20for%20promotion%20and%20validation/near/176890665" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/146212-t-compiler/const-eval/topic/Next.20steps.20for.20promotion.20and.20validation.html#176890665">(Sep 29 2019 at 22:27)</a>:</h4>
<p>yep</p>



<a name="176890794"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/146212-t-compiler/const-eval/topic/Next%20steps%20for%20promotion%20and%20validation/near/176890794" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Dylan MacKenzie (ecstatic-morse) <a href="https://rust-lang.github.io/zulip_archive/stream/146212-t-compiler/const-eval/topic/Next.20steps.20for.20promotion.20and.20validation.html#176890794">(Sep 29 2019 at 22:30)</a>:</h4>
<p>There's also a few small things I need to do, like finishing <a href="https://github.com/rust-lang/rust/issues/64828" target="_blank" title="https://github.com/rust-lang/rust/issues/64828">#64828</a> and working with the authors of <a href="https://github.com/rust-lang/rust/issues/61835" target="_blank" title="https://github.com/rust-lang/rust/issues/61835">#61835</a> and <a href="https://github.com/rust-lang/rust/issues/64588" target="_blank" title="https://github.com/rust-lang/rust/issues/64588">#64588</a> to port their changes to the new validator.</p>



<a name="176890871"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/146212-t-compiler/const-eval/topic/Next%20steps%20for%20promotion%20and%20validation/near/176890871" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Dylan MacKenzie (ecstatic-morse) <a href="https://rust-lang.github.io/zulip_archive/stream/146212-t-compiler/const-eval/topic/Next.20steps.20for.20promotion.20and.20validation.html#176890871">(Sep 29 2019 at 22:33)</a>:</h4>
<p>Although I could hack together an implementation of <a href="https://github.com/rust-lang/rust/issues/49146" target="_blank" title="https://github.com/rust-lang/rust/issues/49146">#49146</a>, I think we should focus on getting <a href="https://github.com/rust-lang/rust/issues/63812" target="_blank" title="https://github.com/rust-lang/rust/issues/63812">#63812</a> merged in one form or another, since this lets us disable the old validator when the new one is deemed sufficiently backwards-compatible.</p>



<a name="176891052"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/146212-t-compiler/const-eval/topic/Next%20steps%20for%20promotion%20and%20validation/near/176891052" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Dylan MacKenzie (ecstatic-morse) <a href="https://rust-lang.github.io/zulip_archive/stream/146212-t-compiler/const-eval/topic/Next.20steps.20for.20promotion.20and.20validation.html#176891052">(Sep 29 2019 at 22:38)</a>:</h4>
<p>Someone has raised concerns about the performance of running both validators in <a href="https://github.com/rust-lang/rust/issues/64470" target="_blank" title="https://github.com/rust-lang/rust/issues/64470">#64470</a>, although I'm skeptical that this is actually a <a href="https://github.com/rust-lang/rust/pull/64470#issuecomment-536302828" target="_blank" title="https://github.com/rust-lang/rust/pull/64470#issuecomment-536302828">"large perf regression"</a> since it appears that only one crate regressed (in wall-time) and the bulk of that regression was caused by an unrelated query (<code>check_match</code>).</p>



<a name="176891131"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/146212-t-compiler/const-eval/topic/Next%20steps%20for%20promotion%20and%20validation/near/176891131" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Dylan MacKenzie (ecstatic-morse) <a href="https://rust-lang.github.io/zulip_archive/stream/146212-t-compiler/const-eval/topic/Next.20steps.20for.20promotion.20and.20validation.html#176891131">(Sep 29 2019 at 22:41)</a>:</h4>
<p>So yeah, I'll start work on those follow-up PRs and ping the authors of the PRs that conflict with <a href="https://github.com/rust-lang/rust/issues/64470" target="_blank" title="https://github.com/rust-lang/rust/issues/64470">#64470</a>. In the meantime, <span class="user-mention" data-user-id="119009">@eddyb</span> let me know what I can do to help with <a href="https://github.com/rust-lang/rust/issues/63812" target="_blank" title="https://github.com/rust-lang/rust/issues/63812">#63812</a>. I've read through it a couple of times now and I should leave some comments.</p>



<a name="176891175"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/146212-t-compiler/const-eval/topic/Next%20steps%20for%20promotion%20and%20validation/near/176891175" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Dylan MacKenzie (ecstatic-morse) <a href="https://rust-lang.github.io/zulip_archive/stream/146212-t-compiler/const-eval/topic/Next.20steps.20for.20promotion.20and.20validation.html#176891175">(Sep 29 2019 at 22:42)</a>:</h4>
<p>Thanks everyone!</p>



<a name="176909197"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/146212-t-compiler/const-eval/topic/Next%20steps%20for%20promotion%20and%20validation/near/176909197" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> oli <a href="https://rust-lang.github.io/zulip_archive/stream/146212-t-compiler/const-eval/topic/Next.20steps.20for.20promotion.20and.20validation.html#176909197">(Sep 30 2019 at 07:25)</a>:</h4>
<p>Question: why are you fixing up the old logic at all?</p>



<a name="176953806"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/146212-t-compiler/const-eval/topic/Next%20steps%20for%20promotion%20and%20validation/near/176953806" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Dylan MacKenzie (ecstatic-morse) <a href="https://rust-lang.github.io/zulip_archive/stream/146212-t-compiler/const-eval/topic/Next.20steps.20for.20promotion.20and.20validation.html#176953806">(Sep 30 2019 at 17:29)</a>:</h4>
<p>We can't remove the old logic until we collect enough data to be confident that switching to dataflow has not affected the qualifications for simple consts and <a href="https://github.com/rust-lang/rust/issues/63812" target="_blank" title="https://github.com/rust-lang/rust/issues/63812">#63812</a> gets implemented in some form. I don't know how long either of these will take. Until that point, people will want to continue to modify <code>qualify_consts.rs</code>, and keeping the passes as similar as possible will help me port their changes to the new pass. Also, keeping the passes in sync will make it easier to debug mismatched validation errors, since there won't be as many places to look.</p>



<a name="176954155"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/146212-t-compiler/const-eval/topic/Next%20steps%20for%20promotion%20and%20validation/near/176954155" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> oli <a href="https://rust-lang.github.io/zulip_archive/stream/146212-t-compiler/const-eval/topic/Next.20steps.20for.20promotion.20and.20validation.html#176954155">(Sep 30 2019 at 17:32)</a>:</h4>
<p>hmm... if you put any new things behind feature gates, you don't need to implement them in the old qualifier, too</p>



<a name="176957766"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/146212-t-compiler/const-eval/topic/Next%20steps%20for%20promotion%20and%20validation/near/176957766" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Dylan MacKenzie (ecstatic-morse) <a href="https://rust-lang.github.io/zulip_archive/stream/146212-t-compiler/const-eval/topic/Next.20steps.20for.20promotion.20and.20validation.html#176957766">(Sep 30 2019 at 18:09)</a>:</h4>
<p><span class="user-mention" data-user-id="124288">@oli</span> I'm not quite sure what you mean, eddyb's fixes simplify the validation logic or improve error messages, there's no new functionality. We could wait and make these fixes once the old qualifier has been removed, but I need something to do in the meantime XD</p>



<a name="176957833"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/146212-t-compiler/const-eval/topic/Next%20steps%20for%20promotion%20and%20validation/near/176957833" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> oli <a href="https://rust-lang.github.io/zulip_archive/stream/146212-t-compiler/const-eval/topic/Next.20steps.20for.20promotion.20and.20validation.html#176957833">(Sep 30 2019 at 18:10)</a>:</h4>
<p>oh</p>



<a name="176957839"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/146212-t-compiler/const-eval/topic/Next%20steps%20for%20promotion%20and%20validation/near/176957839" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> oli <a href="https://rust-lang.github.io/zulip_archive/stream/146212-t-compiler/const-eval/topic/Next.20steps.20for.20promotion.20and.20validation.html#176957839">(Sep 30 2019 at 18:10)</a>:</h4>
<p>I misunderstood</p>



<a name="176958218"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/146212-t-compiler/const-eval/topic/Next%20steps%20for%20promotion%20and%20validation/near/176958218" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Dylan MacKenzie (ecstatic-morse) <a href="https://rust-lang.github.io/zulip_archive/stream/146212-t-compiler/const-eval/topic/Next.20steps.20for.20promotion.20and.20validation.html#176958218">(Sep 30 2019 at 18:14)</a>:</h4>
<p>Things are especially brittle with <a href="https://github.com/rust-lang/rust/pull/64470#discussion_r328630219" target="_blank" title="https://github.com/rust-lang/rust/pull/64470#discussion_r328630219">the way qualifications in <code>static</code>s</a> are currently handled.</p>



<a name="176958317"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/146212-t-compiler/const-eval/topic/Next%20steps%20for%20promotion%20and%20validation/near/176958317" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Dylan MacKenzie (ecstatic-morse) <a href="https://rust-lang.github.io/zulip_archive/stream/146212-t-compiler/const-eval/topic/Next.20steps.20for.20promotion.20and.20validation.html#176958317">(Sep 30 2019 at 18:15)</a>:</h4>
<p>Oh, saw your reviews on the graphviz debugging PR. I'm fixing the merge conflict and then I'll push some more formatting changes. I think after that it will be good to go.</p>



<a name="176958529"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/146212-t-compiler/const-eval/topic/Next%20steps%20for%20promotion%20and%20validation/near/176958529" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> oli <a href="https://rust-lang.github.io/zulip_archive/stream/146212-t-compiler/const-eval/topic/Next.20steps.20for.20promotion.20and.20validation.html#176958529">(Sep 30 2019 at 18:17)</a>:</h4>
<p>sweet</p>



<a name="176958540"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/146212-t-compiler/const-eval/topic/Next%20steps%20for%20promotion%20and%20validation/near/176958540" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> oli <a href="https://rust-lang.github.io/zulip_archive/stream/146212-t-compiler/const-eval/topic/Next.20steps.20for.20promotion.20and.20validation.html#176958540">(Sep 30 2019 at 18:17)</a>:</h4>
<p>I'll try to be faster this time around</p>



<a name="176958559"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/146212-t-compiler/const-eval/topic/Next%20steps%20for%20promotion%20and%20validation/near/176958559" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> oli <a href="https://rust-lang.github.io/zulip_archive/stream/146212-t-compiler/const-eval/topic/Next.20steps.20for.20promotion.20and.20validation.html#176958559">(Sep 30 2019 at 18:17)</a>:</h4>
<p>I'm still online for another hour</p>



<a name="176959705"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/146212-t-compiler/const-eval/topic/Next%20steps%20for%20promotion%20and%20validation/near/176959705" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Dylan MacKenzie (ecstatic-morse) <a href="https://rust-lang.github.io/zulip_archive/stream/146212-t-compiler/const-eval/topic/Next.20steps.20for.20promotion.20and.20validation.html#176959705">(Sep 30 2019 at 18:28)</a>:</h4>
<p><span class="user-mention" data-user-id="124288">@oli</span> Rebased and pushed! Your suggestions won't quite work since <code>self.analysis()</code> will conflict with <code>&amp;mut self.state</code> below.</p>



<a name="176959737"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/146212-t-compiler/const-eval/topic/Next%20steps%20for%20promotion%20and%20validation/near/176959737" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> oli <a href="https://rust-lang.github.io/zulip_archive/stream/146212-t-compiler/const-eval/topic/Next.20steps.20for.20promotion.20and.20validation.html#176959737">(Sep 30 2019 at 18:29)</a>:</h4>
<p>ah, that's too bad</p>



<a name="176959742"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/146212-t-compiler/const-eval/topic/Next%20steps%20for%20promotion%20and%20validation/near/176959742" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> oli <a href="https://rust-lang.github.io/zulip_archive/stream/146212-t-compiler/const-eval/topic/Next.20steps.20for.20promotion.20and.20validation.html#176959742">(Sep 30 2019 at 18:29)</a>:</h4>
<p>ok</p>



<a name="176960285"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/146212-t-compiler/const-eval/topic/Next%20steps%20for%20promotion%20and%20validation/near/176960285" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Dylan MacKenzie (ecstatic-morse) <a href="https://rust-lang.github.io/zulip_archive/stream/146212-t-compiler/const-eval/topic/Next.20steps.20for.20promotion.20and.20validation.html#176960285">(Sep 30 2019 at 18:35)</a>:</h4>
<p>Thank you! btw, if there's anything const-eval or mir-opt related that needs more manpower I would be happy to help.</p>



<a name="177713614"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/146212-t-compiler/const-eval/topic/Next%20steps%20for%20promotion%20and%20validation/near/177713614" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> RalfJ <a href="https://rust-lang.github.io/zulip_archive/stream/146212-t-compiler/const-eval/topic/Next.20steps.20for.20promotion.20and.20validation.html#177713614">(Oct 09 2019 at 13:33)</a>:</h4>
<p><span class="user-mention" data-user-id="118594">@ecstatic-morse</span> one thing we have historically been lacking here is docs, in particular design-level docs (what are the high-level properties being checked where and why). there's some groundwork for that at <a href="https://github.com/rust-rfcs/const-eval/" target="_blank" title="https://github.com/rust-rfcs/const-eval/">https://github.com/rust-rfcs/const-eval/</a> but it would be great if you could expand that as you learn things during your rewrite :)<br>
also thanks so much for all of this, it is rgeat to finally see movement in this part of the compiler!</p>



<a name="177853820"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/146212-t-compiler/const-eval/topic/Next%20steps%20for%20promotion%20and%20validation/near/177853820" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Dylan MacKenzie (ecstatic-morse) <a href="https://rust-lang.github.io/zulip_archive/stream/146212-t-compiler/const-eval/topic/Next.20steps.20for.20promotion.20and.20validation.html#177853820">(Oct 10 2019 at 21:08)</a>:</h4>
<p><span class="user-mention" data-user-id="120791">@RalfJ</span> I think I'm going to open a PR to add a longer introduction to the <a href="https://github.com/rust-rfcs/const-eval/blob/master/promotion.md" target="_blank" title="https://github.com/rust-rfcs/const-eval/blob/master/promotion.md">promotion document</a> detailing the contexts where we trigger promotion. This will be blocked on deciding on terminology, but maybe it would be a good place to have the discussion?</p>



<a name="177901093"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/146212-t-compiler/const-eval/topic/Next%20steps%20for%20promotion%20and%20validation/near/177901093" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> RalfJ <a href="https://rust-lang.github.io/zulip_archive/stream/146212-t-compiler/const-eval/topic/Next.20steps.20for.20promotion.20and.20validation.html#177901093">(Oct 11 2019 at 12:13)</a>:</h4>
<p>Sounds good. I'll edit my PR later today to hopefully fix your confusion.</p>



<a name="177943916"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/146212-t-compiler/const-eval/topic/Next%20steps%20for%20promotion%20and%20validation/near/177943916" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Dylan MacKenzie (ecstatic-morse) <a href="https://rust-lang.github.io/zulip_archive/stream/146212-t-compiler/const-eval/topic/Next.20steps.20for.20promotion.20and.20validation.html#177943916">(Oct 11 2019 at 20:02)</a>:</h4>
<p><span class="user-mention" data-user-id="119009">@eddyb</span> What's the status of <a href="https://github.com/rust-lang/rust/issues/63812" target="_blank" title="https://github.com/rust-lang/rust/issues/63812">#63812</a>? Crater now lets you specify a crate list from the <a href="https://github.com/rust-lang/rust/pull/63831#issuecomment-539104470" target="_blank" title="https://github.com/rust-lang/rust/pull/63831#issuecomment-539104470">github bot</a>. I would trigger the run myself, but I don't have the requisite permissions. Copy-pasting the linked command should be enough though.</p>
<p>I know this PR  requires a special <a href="https://github.com/ecstatic-morse/rust/blob/5ce1951abf6cf4e5fca81896145ed281d61e9145/src/librustc_mir/transform/check_consts/resolver.rs#L178" target="_blank" title="https://github.com/ecstatic-morse/rust/blob/5ce1951abf6cf4e5fca81896145ed281d61e9145/src/librustc_mir/transform/check_consts/resolver.rs#L178">resolver for temp promotion</a>. Would you like me to open a  separate PR for it maybe?</p>



<a name="177954087"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/146212-t-compiler/const-eval/topic/Next%20steps%20for%20promotion%20and%20validation/near/177954087" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Dylan MacKenzie (ecstatic-morse) <a href="https://rust-lang.github.io/zulip_archive/stream/146212-t-compiler/const-eval/topic/Next.20steps.20for.20promotion.20and.20validation.html#177954087">(Oct 11 2019 at 22:09)</a>:</h4>
<blockquote>
<p><span class="user-mention silent" data-user-id="120791">RalfJ</span> I think I'm going to open a PR to add a longer introduction to the <a href="https://github.com/rust-rfcs/const-eval/blob/master/promotion.md" target="_blank" title="https://github.com/rust-rfcs/const-eval/blob/master/promotion.md">promotion document</a> detailing the contexts where we trigger promotion. This will be blocked on deciding on terminology, but maybe it would be a good place to have the discussion?</p>
</blockquote>
<p>For anyone following along, this is <a href="https://github.com/rust-rfcs/const-eval/issues/28" target="_blank" title="https://github.com/rust-rfcs/const-eval/issues/28">rust-rfcs/const-eval#28</a></p>



<a name="178603894"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/146212-t-compiler/const-eval/topic/Next%20steps%20for%20promotion%20and%20validation/near/178603894" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Dylan MacKenzie (ecstatic-morse) <a href="https://rust-lang.github.io/zulip_archive/stream/146212-t-compiler/const-eval/topic/Next.20steps.20for.20promotion.20and.20validation.html#178603894">(Oct 20 2019 at 18:14)</a>:</h4>
<p><span class="user-mention" data-user-id="119009">@eddyb</span> I'd like to get a new promotion pass merged sometime next week. Are you planning to get back to <a href="https://github.com/rust-lang/rust/issues/63812" target="_blank" title="https://github.com/rust-lang/rust/issues/63812">#63812</a> anytime soon? It didn't cause any regressions on crater.</p>
<p>I'm happy to rebase it and finish it up, but there's a few <code>HACK</code> comments that I assume you wanted to resolve before removing the WIP tag. I don't really know what you had in mind for them.</p>



<a name="178603903"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/146212-t-compiler/const-eval/topic/Next%20steps%20for%20promotion%20and%20validation/near/178603903" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/146212-t-compiler/const-eval/topic/Next.20steps.20for.20promotion.20and.20validation.html#178603903">(Oct 20 2019 at 18:14)</a>:</h4>
<p>okay I guess it's on top of my priorities</p>



<hr><p>Last updated: Aug 07 2021 at 22:04 UTC</p>
</html>